import 'package:flutter_ahj_app/base/cunchu/UserInfoUtils.dart';
import 'package:flutter_ahj_app/base/utils/eventBus.dart';

class UserSync {
  /// 本地登录信息传递给凡泰小程序
  static void nativeSyncToFc(String token) async {
    /// 目前测试，逻辑走到这里，不存在当前运行的applet。所以发送消息这块代码当前几乎无意义，保留代码逻辑，以待后续使用  20230311
    /*Map<String, dynamic> currentApplet = await Mop.instance.currentApplet();
    if (currentApplet != null && currentApplet["data"]!=null && currentApplet["data"].containsKey("appId")) {
      var appId= currentApplet["data"]["appId"];
      Mop.instance.sendCustomEvent(appId, {"data": convertUserToken(token), "type": 'userInfo'});
    }*/
  }

  static dynamic convertUserToken(String token){
     return token!=null?{'token':token}:{};
  }

  /// 接收凡泰小程序 用户信息的通知。 一种是小程序端退出，一种是小程序登录。 token有值表示登录，空值或者空字符串则表示退出。
  static Future<Map<String, dynamic>> fcSyncToNavite(dynamic params) async {
    // 预定空值或者空字符串 表示非法值，表示
    try {
      var userInfo = params['userInfo'];
      if (userInfo != null) {
        var token = userInfo['token'];
        if (token != null && token.toString().length > 0) {
          await UserInfoUtils.setUserTokenNoSync(token);
          EventBus().emit(EventBus.TOKEN_CHANGE);
        } else {
          /// 这里相当于清空，退出登录
          UserInfoUtils.setUserTokenNoSync('');
        }
      }
    } catch (e) {
      return {"success": false};
    }

    return {"success": true};
  }
}